import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

// 状态管理
const state = {
  // 路由路径
  path: String,
  // 登录用户id
  userId: String,
  // 登录用户昵称
  nickname: String,
  // 侧边栏高亮
  isActive: String,
  // 是否是自己
  isMyself: Boolean,
  // 歌手详情页面 歌手id
  songerId: String,
  // 歌单id
  songlistId: String,
  // 专辑id
  albumlistId: String,
  // 音乐播放器相关信息
  musicPlayInfo: Object,
  // 搜索关键字
  searchKeyWord: String,
  // 用户详情页面 用户id
  theDetailUserId: String,
  // 关注页面 用户id
  theFollowsUserId: String,
  // 用户详情页面 用户昵称
  theDetailUserName: String,
  // 粉丝页面 用户id
  theFollowedsUserId: String,

}

// 修改state
const mutations = {
  // 改变 路由路径
  changePath(state, val) {
    state.path = val
  },
  // 初始化登录用户id
  initUsereId(state, val) {
    state.userId = val
  },
  // 改变 侧边栏高亮
  changeIsActive(state, val) {
    state.isActive = val
  },
  // 改变 是否是自己
  changeIsMyself(state, val) {
    state.isMyself = val
  },
  // 改变 歌手详情页面 歌手id
  changeSongerId(state, val) {
    state.songerId = val
  },
  // 改变 歌单id
  changeSonglistId(state, val) {
    state.songlistId = val
  },
  // 改变 专辑id
  changeAlbumlistId(state, val) {
    state.albumlistId = val
  },
  // 改变 音乐播放器相关信息
  changeMusicPlayInfo(state, val) {
    state.musicPlayInfo = val
  },
  // 改变 搜索关键字
  changeSearchKeyWord(state, val) {
    state.searchKeyWord = val
  },
  // 改变 用户详情页面 用户id
  changeTheDetailUserId(state, val) {
    state.theDetailUserId = val
  },
  // 改变 关注页面用户id
  changeTheFollowsUserId(state, val) {
    state.theFollowsUserId = val
  },
  // 改变 用户详情页面 用户昵称
  changeTheDetailUserName(state, val) {
    state.theDetailUserName = val
  },
  // 改变 粉丝页面 用户id
  changeTheFollowedsUserId(state, val) {
    state.theFollowedsUserId = val
  },
}

//计算属性 
const getters = {}

// 异步操作
const actions = {}

// 模块
const modules = {}

export default new Vuex.Store({
  state,
  mutations,
  getters,
  actions,
  modules,
})
